package leetcode.Y2024M5D27;

import org.junit.Test;

public class S141 {
    public boolean hasCycle(ListNode head) {
        if (head==null||head.next==null) return false;
        ListNode slow=head;
        ListNode fast=head;
        while (fast.next!=null&&fast.next.next!=null&&slow.next!=null){
            fast=fast.next.next;
            slow=slow.next;
            if (fast==slow) return true;
        }
        return false;

    }

    @Test
    public void test(){
        ListNode listNode0=new ListNode(3);
        ListNode listNode1=new ListNode(2);
        ListNode listNode2=new ListNode(0);
        ListNode listNode3=new ListNode(-4);
        listNode0.next=listNode1;
        listNode1.next=listNode2;
        listNode2.next=listNode3;
        listNode3.next=listNode1;
        System.out.println(hasCycle(listNode0));
    }
}
